Skip to content

gstreamer1.0-plugins-good: Add patches for pulsedirectsink - #2821

Open
bkosuri wants to merge 1 commit into
qualcomm-linux:masterfrom
bkosuri:master
Open

gstreamer1.0-plugins-good: Add patches for pulsedirectsink#2821
bkosuri wants to merge 1 commit into
qualcomm-linux:masterfrom
bkosuri:master

Conversation

@bkosuri

@bkosuri bkosuri commented Jul 28, 2026

Copy link
Copy Markdown

Add a new PulseAudio sink built directly on GstBaseSink rather than GstAudioBaseSink, using the PulseAudio extended-stream API (pa_stream_new_extended / pa_format_info). Unlike pulsesink, which is oriented around a PCM ringbuffer, pulsedirectsink writes encoded frames straight to the server, making it suitable for DSP offload where the sink, not the CPU, performs playout.

These patches have been submitted for upstream review.

  • pulse: NULL check before de-reference
  • pulse: add pulsedirectsink element

@github-actions

github-actions Bot commented Jul 28, 2026

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 2872169

nodistro
Pass: 10 | Fail: 0 | Total: 10
qcom-distro
Pass: 287 | Fail: 25 | Total: 342
qcom-distro_linux-qcom-6.18
Pass: 224 | Fail: 9 | Total: 259

@test-reporting-app

test-reporting-app Bot commented Jul 28, 2026

Copy link
Copy Markdown

Test Results

  117 files    698 suites   9h 16m 51s ⏱️
  161 tests   117 ✅  2 💤 42 ❌
4 482 runs  4 358 ✅ 56 💤 68 ❌

For more details on these failures, see this check.

Results for commit 2872169.

♻️ This comment has been updated with latest results.

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit abc881b

  • qcomdistro: multimedia image-prop
    Pass: 47 | Fail: 1 | Total: 48
  • qcomdistro: multimedia image
    Pass: 8 | Fail: 1 | Total: 9

Date: Tue, 28 Jul 2026 14:42:05 +0530
Subject: [PATCH] pulse: NULL check before de-reference

Upstream-Status: Submitted [upstream ticket <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12144>]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not a ticket.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

since PulseAudio does not rate-limit an encoded passthrough stream via
writable-size flow control.

Upstream-Status: Submitted [upstream ticket <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12144>]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neither is this

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

Comment thread recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_%.bbappend
Add a new PulseAudio sink built directly on GstBaseSink rather
than GstAudioBaseSink, using the PulseAudio extended-stream API
(pa_stream_new_extended / pa_format_info). Unlike pulsesink,
which is oriented around a PCM ringbuffer, pulsedirectsink writes
encoded frames straight to the server, making it suitable for DSP
offload where the sink, not the CPU, performs playout.

These patches have been submitted for upstream review.
- pulse: NULL check before de-reference
- pulse: add pulsedirectsink element

Signed-off-by: Bala Sai Kosuri <bkosuri@qti.qualcomm.com>
@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit 2872169

  • qcomdistro: multimedia image-prop
    Pass: 31 | Fail: 0 | Total: 31
  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9

sink, not the CPU, performs playout.

- The element accepts MP3 (MPEG-1 Audio Layer III) only, mapping it to
PA_ENCODING_MPEG_IEC61937.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've provided several review comments in the GStreamer MR. However, the main question is, how can this be tested? Which platform did you use for testing? I don't see MP3 modules for any of the platforms.

@bkosuri bkosuri Aug 7, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been tested on RB3 Gen2 with an image shared by Audio team with all required changes from their end.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How to reproduce it with the pristine QLI?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the list of modules / libs that are available for RB3 Gen2:

CFCM.so.1
fastrpc_shell_0
libsns_device_mode_skel.so
libsns_direct_channel_skel.so
libsns_dynamic_loader_skel.so
libsns_remote_proc_state_skel.so
libstabilitydomain_skel.so
libsysmondomain_skel.so
libsysmonquery_skel.so
libsysmon_skel.so
SAPlusCmnModule.so.1
sbc_dec_module.so.1
sbc_enc_module.so.1
smecns_v2_module_fvxiii.so.1

I definitely don't see MP3 here (nor AAC FWIW).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants